package com.blockchain.console.service.content.entity;

import java.sql.Timestamp;

import com.blockchain.common.enums.IsPass;
import com.blockchain.framework.http.upload.UploadFile;

/**
 * 文章信息.
 * 
 */
public abstract interface Article {
	/**
	 * 获取文章标题.
	 * 
	 * @return {@link String} 文章标题
	 */
	public abstract String getTitle();
	
	/**
	 * 获取文章标题.
	 * 
	 * @return {@link String} 文章标题(英文)
	 */
	public abstract String getTitleEn();
	
	/**
	 * 获取文章标题.
	 * 
	 * @return {@link String} 文章标题(繁体)
	 */
	public abstract String getTitleTw();

	/**
	 * 获取文章排序值.
	 * 
	 * @return {@code int} 文章排序值
	 */
	public abstract int getSortIndex();

	/**
	 * 获取文章发布状态.
	 * 
	 * @return {@link ArticlePublishStatus} 文章发布状态
	 */
	public abstract IsPass getPublishStatus();

	/**
	 * 获取文章来源.
	 * 
	 * @return {@link String} 文章来源
	 */
	public abstract String getSource();

	/**
	 * 获取文章内容.
	 * 
	 * @return {@link String} 文章内容
	 */
	public abstract String getContent();
	
	/**
	 * 获取文章内容.
	 * 
	 * @return {@link String} 文章内容(英文)
	 */
	public abstract String getContentEn();
	
	/**
	 * 获取文章内容.
	 * 
	 * @return {@link String} 文章内容(繁体)
	 */
	public abstract String getContentTw();

	/**
	 * 获取文章摘要.
	 * 
	 * @return {@link String} 文章摘要
	 */
	public abstract String getSummary();

	/**
	 * 获取封面图片上传文件.
	 * 
	 * @return {@link UploadFile} 上传文件.
	 * @throws Throwable
	 */
	public abstract UploadFile getImage() throws Throwable;
	/**
	 * 获取文章发布时间
	 * 
	 * @return
	 */
	public abstract Timestamp publishTime();
	
	/**
	 * 是否推荐
	 */
	public abstract IsPass getIstj();
	
	/**
	 * 是否推荐
	 */
	public abstract int getIsorder();
	
}
